﻿Public Class Stats

    Private mEXP As Integer = 1
    Private mEXPMax As Integer = 100
    Private mHasTarget As Boolean = False
    Private mHP As Integer = 100
    Private mHPMax As Integer = 100
    Private mEnergy As Integer = 100
    Private mEnergyMax As Integer = 100
    Private mStamina As Integer = 100
    Private mStaminaMax As Integer = 100
    Private mName As String = "Default"
    Private mLevel As Integer = 1
    Private mWeapon As String = "None"
    Private mDamage As Integer = 5
    Private mDelay As Integer = 15
    Private WithEvents attackTimer As System.Timers.Timer
    Private mattackTimerTicked As Boolean = True
    Private mTarget As Sprite
    Private mSpawnID As String = "Default" ' Model Type
    Private mSpawnTimer As Integer = 10
    Private mSpawnLoc As New Vector4(1, 1, 1, 11) ' XX,YY,ZZ,MM    MM = Map, & X,y,z coordinates
    Private mSpawnOnLoad As Boolean = True 'For Triggered Sprites
    Private mIsDead As Boolean = False
    Private mIsPlayer As Boolean = False
    Private misAttacking As Boolean = False

#Region "Properties"
    Public Property EXP As Integer
        Get
            Return mEXP
        End Get
        Set(value As Integer)
            mEXP = value
        End Set
    End Property
    Public Property EXPMax As Integer
        Get
            Return mEXPMax
        End Get
        Set(value As Integer)
            mEXPMax = value
        End Set
    End Property
    Public Property HP As Integer
        Get
            Return mHP
        End Get
        Set(value As Integer)
            mHP = value
        End Set
    End Property
    Public Property HPMax As Integer
        Get
            Return mHPMax
        End Get
        Set(value As Integer)
            mHPMax = value
        End Set
    End Property
    Public Property Energy As Integer
        Get
            Return mEnergy
        End Get
        Set(value As Integer)
            mEnergy = value
        End Set
    End Property
    Public Property EnergyMax As Integer
        Get
            Return mEnergyMax
        End Get
        Set(value As Integer)
            mEnergyMax = value
        End Set
    End Property
    Public Property Stamina As Integer
        Get
            Return mStamina
        End Get
        Set(value As Integer)
            mStamina = value
        End Set
    End Property
    Public Property StaminaMax As Integer
        Get
            Return mStaminaMax
        End Get
        Set(value As Integer)
            mStaminaMax = value
        End Set
    End Property
    Public Property Name As String
        Get
            Return mName
        End Get
        Set(value As String)
            mName = value
        End Set
    End Property
    Public Property Level As Integer
        Get
            Return mLevel
        End Get
        Set(value As Integer)
            mLevel = value
        End Set
    End Property
    Public Property Weapon As String
        Get
            Return mWeapon
        End Get
        Set(value As String)
            mWeapon = value
        End Set
    End Property
    Public Property Damage As Integer
        Get
            Return mDamage
        End Get
        Set(value As Integer)
            mDamage = value
        End Set
    End Property
    Public Property Delay As Integer
        Get
            Return mDelay
        End Get
        Set(value As Integer)
            mDelay = value
        End Set
    End Property
    Public Property AttackTimerTicked As Boolean
        Get
            Return mattackTimerTicked
        End Get
        Set(value As Boolean)
            mattackTimerTicked = value
        End Set
    End Property
    Public Property Target As Sprite
        Get
            Return mTarget
        End Get
        Set(value As Sprite)
            mTarget = value
        End Set
    End Property
    Public Property SpawnID As String
        Get
            Return mSpawnID
        End Get
        Set(value As String)
            mSpawnID = value
        End Set
    End Property
    Public Property SpawnTimer As Integer
        Get
            Return mSpawnTimer
        End Get
        Set(value As Integer)
            mSpawnTimer = value
        End Set
    End Property
    Public Property SpawnOnLoad As Boolean
        Get
            Return mSpawnOnLoad
        End Get
        Set(value As Boolean)
            mSpawnOnLoad = value
        End Set
    End Property
    Public Property IsDead As Boolean
        Get
            Return mIsDead
        End Get
        Set(value As Boolean)
            mIsDead = value
        End Set
    End Property
    Public Property IsAttacking As Boolean
        Get
            Return misAttacking
        End Get
        Set(value As Boolean)
            misAttacking = value
        End Set
    End Property
    Public Property SpawnLoc As Vector4
        Get
            Return mSpawnLoc
        End Get
        Set(value As Vector4)
            mSpawnLoc = value
        End Set
    End Property
    Public Property HasTarget As Boolean
        Get
            Return mHasTarget
        End Get
        Set(value As Boolean)
            mHasTarget = value
        End Set
    End Property
#End Region

End Class
